from sys import stdin
n,p = map(int, stdin.readline()[:-1].split(" "))
c=stdin.readline()[:-1]
a=0
for i in range(len(c)):
if(c[i]=="-"):
a+=1
out = ""
for i in range(p):
k,l = map(int, input().split(" "))
dist = l-k+1
if(dist%2==0 and dist/2<=a and dist/2<=n-a):
out += "1\n"
else:
out += "0\n"
print(out)
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, m;
cin >> n >> m;
vector<int> arr(n);
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int minus1 = count(arr.begin(), arr.end(), -1);
int plus1 = n - minus1;
int minreq = min(minus1, plus1);
for (int i = 0; i < m; i++) {
int l, r;
cin >> l >> r;
int numbers = r - l + 1;
if (numbers % 2 != 0) {
cout << 0 << endl;
} else {
if (numbers <= 2 * minreq && numbers <= (minus1 + plus1)) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
}
}
return 0;
}
686A - Free Ice Cream | 1358D - The Best Vacation |
1620B - Triangles on a Rectangle | 999C - Alphabetic Removals |
1634C - OKEA | 1368C - Even Picture |
1505F - Math | 1473A - Replacing Elements |
959A - Mahmoud and Ehab and the even-odd game | 78B - Easter Eggs |
1455B - Jumps | 1225C - p-binary |
1525D - Armchairs | 1257A - Two Rival Students |
1415A - Prison Break | 1271A - Suits |
259B - Little Elephant and Magic Square | 1389A - LCM Problem |
778A - String Game | 1382A - Common Subsequence |
1512D - Corrupted Array | 667B - Coat of Anticubism |
284B - Cows and Poker Game | 1666D - Deletive Editing |
1433D - Districts Connection | 2B - The least round way |
1324A - Yet Another Tetris Problem | 246B - Increase and Decrease |
22E - Scheme | 1566A - Median Maximization |